package cn.tedu.oop;
/**本类用于构造函数入门案例*/
public class TestConstructor {
    public static void main(String[] args) {
        /**每次new(实例化)对象时，都会自动触发执行对应类的构造方法
         * 每个类中默认都会存在一个没有参数的构造方法
         * 但是如果提供了其他的构造函数，默认的构造函数会被覆盖
         * 所以，我们要手动提供无参构造，因为只有这样，才能不传参数也能创建对象
         * 构造方法的格式:与本类类名同名，切没有返回值类型的方法*/
        Person p1 = new Person();//无参
        Person p2 = new Person();
        p1.eat();
        Person p3 = new Person(666);//含参
        Person p4 = new Person("李逵",20,"柳树下");//全参
    }
}
class  Person{
    String name;
    int age;
    String address;
    /**创建本类的构造方法*/
    /**构造方法的格式:与本类类名同名，且没有返回值类型的方法*/
    public Person(){
        System.out.println("我是Person的无参构造方法");
    }
    public Person(int n){
        System.out.println("我是Person的含参构造"+n);
    }
    //创建本类的全参构造
    //Constructor->ctrl+A
    public Person(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
        System.out.println("我是Person类的全参构造");
    }

    public void eat(){
        System.out.println("我又来干饭了");
    }
}
